# # 默认参数，在定义形参的时候，赋值即可
# def func(x=1, y=2, z=3):
#     print(f'x值：{x}，y值：{y}，z值：{z}')
#
#
# # 默认参数，不传递实参，那么会使用默认值
# func()
#
# # 传递实参，覆盖默认值，使用实参
# func(4, 5, 6)


# 默认参数，结合位置参数一起使用，位置参数必须在默认参数前面
# def func(x, y, z=3):
#     print(f'x值：{x}，y值：{y}，z值：{z}')


# 可以接收几个实参？
# func(1, 2)
# func(1, 2, 4)
# func(1)
# func(1,2,3,4)

# 位置参数结合默认参数，可以实现参数数量接收范围
# 位置参数决定了必填实参下限
# 默认参数决定了实参范围
# 定义一个函数，要求可以接收2-5个实参
#
# def func(a, b, c=None, d=None, e=None):
#     print(f'a值：{a}，b值：{b}，c值：{c}，d值：{d}，e值：{e}')

#
# func(11, 22)
# func(11, 22, 33)
# func(11, 22, 33, 44)
# func(11, 22, 33, 44, 55)

# 错误演示
# func(11)
# func(11,22,33,44,55,66)

# 练习：定义一个函数，限制可以接收1-3个实参
def func(a, b=None, c=None):
    print(f'a值：{a}，b值：{b}，c值：{c}')


# func(1)
# func(1,2)
# func(1,2,3)

# func()
func(1,2,3,4)
